package com.yunlan.materia.service;

import com.yunlan.materia.entity.PatientInfo;
import com.yunlan.materia.request.DeletePatientInfoRequest;
import com.yunlan.materia.request.PatientInfoRequest;
import com.yunlan.materia.request.QueryPatientRequest;
import com.yunlan.materia.response.PatientInfoResponse;

import java.util.List;
import java.util.Map;

/**
 * @author 罗显
 * @date 2025/9/18
 * @ApiNote
 */
public interface PatientInfoService {

    /**
     * 病患建档
     * @param request
     * @return
     */
    PatientInfoResponse createPatientRecord(PatientInfoRequest request);

    /**
     * 删除Patient所有记录
     * @param request
     * @return
     */
    int deletePatientInfo(DeletePatientInfoRequest request);

    /**
     * 精确查询病患基本信息
     * @return
     */
    PatientInfoResponse queryPatientInfo(QueryPatientRequest request);

    /**
     * 模糊查询病患基本信息
     * @param request
     * @return
     */
    List<PatientInfoResponse> queryPatientInfos(QueryPatientRequest request);

    /**
     *
     * 查询病患详细信息:
     * 1.个人信息
     * 2.就诊记录
     * 3.出院记录
     * @return
     */
    Map<String,Object> queryPatientDetails(QueryPatientRequest request);

    /**
     * 根据手机号或身份证号查询
     * @param phone
     * @param idCard
     * @return
     */
    PatientInfo queryByPhoneOrIdCard(String phone, String idCard);
}
